package session

import (
	"fmt"
)

func CheckSession(sessionUnkown []string, num int) (err error) {
	if len(sessionUnkown) == 0 {
		return
	}
	session := sessionUnkown[0]
	if session == "" {
		err = fmt.Errorf("session == nil")
		return
	}

	ses, err := FindSession(session)
	//fmt.Println(ses.Admin)
	if err != nil {
		return
	} else if ses == nil {
		err = fmt.Errorf("session过期")
		return
	} else if ses.Admin == nil {
		err = fmt.Errorf("未登录")
		return
	}

	if num == 4 {
		return nil
	}

	if ses.Admin.Privilege != 1 && num != 3 {
		switch num {
		case 0:
			if ses.Admin.ActivityManagement != 1 {
				err = fmt.Errorf("无权限")
				return
			}
		case 1:
			if ses.Admin.ProductManagement != 1 {
				err = fmt.Errorf("无权限")
				return
			}
		case 2:
			if ses.Admin.OrderManagement != 1 {
				err = fmt.Errorf("无权限")
				return
			}
		}

	} else if ses.Admin.Privilege != 1 && num == 3 {
		err = fmt.Errorf("无权限")
		return
	}
	return nil
}
